home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGNG_C / MCD.LZH / MCD-3.EXE / MCD.DOC < prev    next >
Text File  |  1992-03-26  |  44KB  |  1,075 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.                                M   M  CCC  DDDD 
  14.                                MM MM C   C D   D
  15.                                M M M C     D   D
  16.                                M   M C   C D   D
  17.                                M   M  CCC  DDDD 
  18.  
  19.                              Mouse Cursor Designer
  20.                                  Version 2.00
  21.                                  26 March 1992
  22.  
  23.                      Copyright (C) 1989-92 by Rimrock Software
  24.                               All Rights Reserved
  25.  
  26.  
  27.  
  28.  
  29.                              ┌─────────┐
  30.                        ┌─────┴───┐     │               (R)
  31.                      ──│         │o    │──────────────────
  32.                        │   ┌─────┴╨──┐ │  Association of
  33.                        │   │         │─┘  Shareware
  34.                        └───│    o    │    Professionals
  35.                      ──────│    ║    │────────────────────
  36.                            └────╨────┘    MEMBER
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. Rimrock Software
  46. P.O. Box 2406
  47. Hayden, ID  83835
  48. (208) 772-9347 (after 6 pm Pacific Time)
  49.  
  50.  
  51.                        MCD Shareware Information
  52.  
  53. MCD is a shareware product.  No matter how you obtained this product, we 
  54. encourage you to freely copy and distribute MCD, provided that 
  55.  
  56.     1. No fee is charged beyond normal media duplication and shipping costs. 
  57.  
  58.     2. The MCD archive distribution file must be distributed in its original 
  59.        form.  Specifically, the files listed in the PACKING.LST must be 
  60.        included.  None of these files should be altered, and no new files 
  61.        should be added.  Advertising within the MCD archive file is 
  62.        prohibited. 
  63.  
  64.     3. Commercial use of MCD is prohibited unless the program is registered 
  65.        for the specific number of computers on which it will be used. 
  66.  
  67. See the ORDER.FRM file for more licensing information. 
  68.  
  69. If you received MCD as shareware, i.e., you didn't pay a registration fee for 
  70. it or you got it from a shareware library, and you use it on a regular basis, 
  71. you must register the program using the accompanying order form.  Registering 
  72. shareware encourages program authors to continue making improvements to 
  73. programs and to create newer and better software. 
  74.  
  75. For your $39 registration fee, you will receive the latest registered version 
  76. of MCD, all accompanying files, and a printed user's manual.  You will also be 
  77. entitled to unlimited technical support.
  78.  
  79. Rimrock Software is a member of the Association of Shareware Professionals 
  80. (ASP).  ASP wants to make sure that the shareware principle works for you.  If 
  81. you are unable to resolve a shareware-related problem with an ASP member by 
  82. contacting the member directly, ASP may be able to help.  The ASP Ombudsman 
  83. can help you resolve a dispute or problem with an ASP member, but does not 
  84. provide technical support for members' products.  Please write to the ASP 
  85. Ombudsman at 545 Grover Road, Muskegon, MI  49442-9427 or send a CompuServe 
  86. message via easyplex to ASP Ombudsman 70007,3536 
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.                                     Page i
  104.                                TABLE OF CONTENTS
  105.  
  106.     Introduction to MCD . . . . . . . . . . . . . . . . . . . . . . 1
  107.         Overview. . . . . . . . . . . . . . . . . . . . . . . . . . 1
  108.         System Requirements . . . . . . . . . . . . . . . . . . . . 1
  109.         Technical Support . . . . . . . . . . . . . . . . . . . . . 1
  110.         Registration Information. . . . . . . . . . . . . . . . . . 2
  111.  
  112.     Using MCD . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
  113.         Running MCD . . . . . . . . . . . . . . . . . . . . . . . . 2
  114.         MCD and the Mouse . . . . . . . . . . . . . . . . . . . . . 2
  115.         MCD and the Keyboard. . . . . . . . . . . . . . . . . . . . 3
  116.         The MCD Display . . . . . . . . . . . . . . . . . . . . . . 4
  117.           The Pulldown Menu . . . . . . . . . . . . . . . . . . . . 5
  118.             File Menu . . . . . . . . . . . . . . . . . . . . . . . 5
  119.             Edit Menu . . . . . . . . . . . . . . . . . . . . . . . 7
  120.             Generate Menu . . . . . . . . . . . . . . . . . . . . . 8
  121.             Info Menu . . . . . . . . . . . . . . . . . . . . . . . 9
  122.           The File Frame. . . . . . . . . . . . . . . . . . . . . . 9
  123.           The Mask Information Frames . . . . . . . . . . . . . . . 9
  124.           The Editing Frames. . . . . . . . . . . . . . . . . . . .10
  125.           The Toolboxes . . . . . . . . . . . . . . . . . . . . . .11
  126.  
  127.     Creating a Mouse Cursor . . . . . . . . . . . . . . . . . . . .12
  128.         See-through Cursors . . . . . . . . . . . . . . . . . . . .13
  129.         Overlay Cursors . . . . . . . . . . . . . . . . . . . . . .13
  130.         Animated Cursors. . . . . . . . . . . . . . . . . . . . . .14
  131.  
  132.     Using MCD Mouse Cursors . . . . . . . . . . . . . . . . . . . .14
  133.         Generic C . . . . . . . . . . . . . . . . . . . . . . . . .14
  134.         Pascal. . . . . . . . . . . . . . . . . . . . . . . . . . .15
  135.  
  136.     MCD2C - Convert .MCD files to .C. . . . . . . . . . . . . . . .16
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.                                     Page ii
  158. Introduction to MCD
  159. -------------------
  160.  
  161.     Overview
  162.     --------
  163.  
  164.     MCD, the Mouse Cursor Designer allows programmers to design graphical 
  165.     mouse cursors for their graphics programs and for EGA/VGA text programs 
  166.     using the TesSeRact C eXtended Library (TCXL) version 6 (TCXL is copyright 
  167.     (C) 1987-92 by Innovative Data Concepts).  MCD allows you to modify the 
  168.     two masks that, together, compromise a mouse cursor.  You may save cursor 
  169.     designs and reload them.  MCD can generate source code from the cursor 
  170.     designs for C, Pascal, Basic and Assembly Language.  The cursor designs 
  171.     are stored in a form that is directly compatible with programs using TCXL. 
  172.  
  173.     By taking advantage of the way a mouse driver displays its graphic mouse 
  174.     cursor, you can create mouse cursors that are see-through, overlayed or 
  175.     animated.  These three cursor types are explained later in this manual.
  176.  
  177.     MCD was written using Borland International C++, version 3.0.  It uses the 
  178.     TEGL Toolkit for its display functions (TEGL is copyright (C) 1989-92 by 
  179.     TEGL Systems Corporation).
  180.  
  181.     System Requirements
  182.     -------------------
  183.  
  184.     DOS Version: 2.10 or higher
  185.     Memory:      640k
  186.     Disk drives: 1 floppy or hard disk for file storage/retrieval.
  187.     Display:     EGA, VGA or Hercules display required.
  188.     Other:       A Microsoft compatible mouse and driver is optional 
  189.                  but desirable.
  190.  
  191.     Technical Support
  192.     -----------------
  193.  
  194.     If you have any questions regarding MCD, you may call Rimrock Software for 
  195.     technical assistance.  Technical support is available throughout the week, 
  196.     from 6:00 pm to 10:00 pm, Pacific time.  The phone number is (208) 772-
  197.     9347.  Technical support is NOT limited to registered users, although we 
  198.     encourage you to register the MCD package. 
  199.  
  200.     You may reach Rimrock Software on CompuServe.  We regularly monitor the 
  201.     SHAREWARE forum, section 1, for questions about our software.  Please 
  202.     direct your questions to Michael Burton, 71211,70. 
  203.  
  204.     You may obtain the latest shareware version of MCD, and ask questions 
  205.     about it, on the Tech Board BBS, (208) 765-0180. The Tech Board sysop is 
  206.     Dan Boss and he has kindly provided an area for support of Rimrock 
  207.     Software products.  Many thanks, Dan. 
  208.  
  209.  
  210.  
  211.                                     Page 1
  212.     Registration Information
  213.     ------------------------
  214.  
  215.     The unregistered version of MCD is a fully functional, uncrippled program. 
  216.     If you find this program to be useful, you can become a registered user.  
  217.     Registration entitles you to the latest version of the program and a 
  218.     bound, printed manual, as well as unlimited technical support.  The only 
  219.     difference between the registered and the unregistered versions of the 
  220.     program is that the registered version does not have any registration 
  221.     reminders.  An order form is included with MCD, and may be printed by 
  222.     entering the following at the DOS prompt: 
  223.  
  224.         COPY ORDER.FRM PRN
  225.  
  226.     Be sure to fill out all the information on the order form, including the 
  227.     MCD unregistered version you are using. 
  228.  
  229. Using MCD
  230. ---------
  231.  
  232.     Running MCD
  233.     -----------
  234.  
  235.     MCD is easy to use.  The only file necessary is MCD.EXE.  To run the 
  236.     program, simply enter 
  237.  
  238.         MCD
  239.  
  240.     No command line options are available.  When MCD executes, you will see a 
  241.     registration request screen.  You may continue on to the MCD display by 
  242.     pressing any key. 
  243.  
  244.     MCD and the Mouse
  245.     -----------------
  246.  
  247.     MCD does not require a mouse.  If you have one, though, using MCD is much 
  248.     easier. 
  249.  
  250.     Moving the mouse will produce corresponding motion of the cursor on the 
  251.     MCD display.
  252.  
  253.     Clicking the left mouse button will select whatever item you happen to 
  254.     have the cursor pointing at.  For instance, to pull down the File menu, 
  255.     you would move the cursor to the word 'File' on the menu bar and then 
  256.     click the left mouse button.  To load a file, you would then move the 
  257.     cursor down to the word 'Load' and click the left mouse button again.  If 
  258.     you are in the Screen Mask Editing Frame (see figure 1), clicking the left 
  259.     mouse button will change the state of the icon pixel you are pointing at. 
  260.  
  261.     If you press and hold down the left mouse button in either Editing Frame, 
  262.     and move the mouse, then many of the mask pixels will change state. 
  263.  
  264.  
  265.                                     Page 2
  266.     If you press and hold down the right mouse button, you can move the 
  267.     various MCD frames around.  The only frames that are glued down are the 
  268.     Editing Frames.  All the other frames, including the Pulldown Menu, can be 
  269.     moved.  
  270.     
  271.     NOTE: MCD creates a configuration file that contains the positions of all 
  272.     the frames.  If you move them around and then leave MCD, when you reenter 
  273.     MCD the frames will be where you left them.  If you want the frames back 
  274.     in their default positions, erase the MCD.CFG file. 
  275.     
  276.     NOTE: If you move any of the frames so they overlap the Editing Frames, 
  277.     drawing will slow down.  Try to keep the other frames out of the Editing 
  278.     Frames. 
  279.  
  280.     MCD and the Keyboard
  281.     --------------------
  282.  
  283.     You can still use MCD, even if you don't have a mouse.  You can use the 
  284.     cursor keys to move the cursor and the Enter key to select an item.
  285.  
  286.     Cursor keys - Move the cursor around.  Unshifted cursor keys provide gross 
  287.     movement, and shifted cursor keys provide fine movement. 
  288.  
  289.     Enter key - Functions as the left mouse key.  Press and release it to 
  290.     select an item.  In the Editing Frames, you can press and hold the Enter 
  291.     key down and then move around with the cursor keys to change many pixels. 
  292.  
  293.     Alt-F key - Selects the File menu item.  You may then select one of the 
  294.     file options by pressing the underlined letter for that item.
  295.  
  296.     Alt-E key - Selects the Edit menu item.  You may then select one of the 
  297.     edit options by pressing the underlined letter for that item.
  298.  
  299.     Alt-G key - Selects the Generate menu item.  You may then select one of 
  300.     the generate items by pressing the underlined letter for that item.
  301.  
  302.     Alt-I key - Selects the Info menu item.  You may then select one of the 
  303.     info options by pressing the underlined letter for that item.
  304.     
  305.     NOTE: If you press one of the Alt keys and that menu comes down, then 
  306.     immediately goes away, make sure the cursor is outside of both Editing 
  307.     Frames, then try that Alt key again. 
  308.  
  309.     Ctrl-Break key - A nasty way to leave MCD.  You are NOT given a chance to 
  310.     save your work if you use this key.  USE CTRL-BREAK ONLY AS A LAST RESORT.  
  311.     Use the File Exit menu item to leave MCD normally. 
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.                                     Page 3
  320.     The MCD Display
  321.     ---------------
  322.  
  323.     Other than the registration request screen, there is only one other 
  324.     display in MCD.  There are eight major frames in the display (see figure 
  325.     1); the Pulldown Menu, the File Frame, the Mask Information Frames, the 
  326.     Editing Frames and the Toolboxes. 
  327.  
  328.  
  329.     +--------------------------------------------------------------------+
  330.     | File  Edit  Generate  Info                                         |
  331.     +--------------------------------------------------------------------+
  332.     |  +--------------+            +--------------+           +--------+ |
  333.     |  |Screen  PX:   |            |Cursor  PX:   |           |Mouse   | |
  334.     |  |Mask    PY:   |            |Mask    PY:   |           |Cursor  | |
  335.     |  +--------------+ +------+   +--------------+ +------+  |Designer| |
  336.     | +----------------+|      |  +----------------+|      |  +--------+ |
  337.     | |                |+------+  |                |+------+             |
  338.     | |                ||      |  |                ||      |             |
  339.     | |                |+------+  |                |+------+             |
  340.     | |                ||      |  |                ||      |             |
  341.     | |                |+------+  |                |+------+             |
  342.     | | [Screen Mask   ||      |  | [Cursor Mask   ||      |             |
  343.     | | Editing Frame] |+------+  | Editing Frame] |+------+             |
  344.     | |                ||      |  |                ||      |             |
  345.     | |                |+------+  |                |+------+             |
  346.     | |                ||      |  |                ||      |             |
  347.     | |                |+------+  |                |+------+             |
  348.     | |                ||      |  |                ||      |             |
  349.     | |                |+------+  |                |+------+             |
  350.     | |                ||      |  |                ||      |             |
  351.     | |                |+------+  |                |+------+             |
  352.     | |                ||      |  |                ||      |             |
  353.     | +----------------++------+  +----------------++------+             |
  354.     |                                                                    |
  355.     | +-------------------------------------+                            |
  356.     | |File:  [File Frame]                  |                            |
  357.     | |-------------------------------------|                            |
  358.     | |Unregistered Version                 |                            |
  359.     | +-------------------------------------+                            |
  360.     |                                                                    |
  361.     +--------------------------------------------------------------------+
  362.  
  363.                          Figure 1  MCD Editing Display
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.                                     Page 4
  374.         The Pulldown Menu
  375.         -----------------
  376.  
  377.             File Menu
  378.             ---------
  379.  
  380.             The file menu is used to load and save cursor designs, and to 
  381.             leave MCD when you are finished. It contains four items, detailed 
  382.             below (see figure 2). 
  383.  
  384.                                   +-----------------
  385.                                   | File   Edit   Ge
  386.                                   +-------------+---
  387.                                   | Load        |
  388.                                   | Save        |
  389.                                   | Save as     |
  390.                                   +-------------+
  391.                                   | Exit to DOS |
  392.                                   +-------------+
  393.  
  394.                                 Figure 2  File Menu
  395.  
  396.             In general, when you select a file load or save item, a pop up 
  397.             file selection window appears (see figure 3).  This window 
  398.             contains an empty file name box, a current directory box, a 
  399.             scrolling list of file names, a scrolling list of directories and 
  400.             drives, a Cancel button and an Ok button. 
  401.             
  402.             To select a file for loading or saving, you must fill out the 
  403.             empty file name box.  You can do this in two different ways; 
  404.             clicking on a file name in the file name scrolling list or typing 
  405.             the name into the file name box.  
  406.             
  407.             To click on an existing file name, move the file name list up or 
  408.             down using the scroll controls, then click on the appropriate file 
  409.             name.  That file name will be displayed in the file name box.  If 
  410.             you need to change to a different directory or drive, click on it 
  411.             in the directory/drive list.
  412.             
  413.             To type in a file name, click on the empty file name box.  A bar 
  414.             cursor will appear, indicating you may start typing.  Type in a 
  415.             file name.
  416.  
  417.             Once the file name box is filled out, click on the Ok button or 
  418.             press the Enter key. 
  419.  
  420.             NOTE: MCD files have an extension of '.C'.  Any extension you 
  421.             enter in the file name box will be ignored and will be replaced 
  422.             with '.C'.
  423.  
  424.  
  425.  
  426.  
  427.                                     Page 5
  428.            +-------------------------------------------------------+
  429.            |                       Load Mask                       |
  430.            +-------------------------------------------------------+
  431.            |           +-----------------+                         |
  432.            | Filename: |                 |                         |
  433.            |           +-----------------+                         |
  434.            |           +-----------------------------------------+ |
  435.            | Directory:|H:\MCD                                   | |
  436.            |           +-----------------------------------------+ |
  437.            | +---------------------+-+ +-----------------------+-+ |
  438.            | | ARROW.C             |^| | [.]                   |^| |
  439.            | | GUNSIGHT.C          +-+ | [..]                  +-+ |
  440.            | | HAIRS.C             | | | [MCDSRC]              | | |
  441.            | | HOURGLAS.C          | | | [-A-]                 | | |
  442.            | | PACMAN.C            | | | [-B-]                 | | |
  443.            | | POINTS.C            | | | [-C-]                 | | |
  444.            | | POINTER.C           +-+ | [-D-]                 +-+ |
  445.            | | SHUTTLE.C           |V| | [-E-]                 |V| |
  446.            | +---------------------+-+ +-----------------------+-+ |
  447.            |                                      +------+  +----+ |
  448.            |                                      |CANCEL|  | OK | |
  449.            |                                      +------+  +----+ |
  450.            +-------------------------------------------------------+
  451.  
  452.                         Figure 3  File Selection Window
  453.  
  454.             Load
  455.  
  456.             The Load menu item allows you to load a cursor design into MCD 
  457.             from a C source file.  If you select Load and you have not saved 
  458.             your current work, you will be prompted to do so. 
  459.  
  460.             Save
  461.  
  462.             The Save menu item allows you to update a cursor file with the 
  463.             changes you have made.  For new work, selecting Save is the same 
  464.             as selecting Save as.  For old work, the cursor design will be 
  465.             saved with the current file name.
  466.  
  467.             Save as
  468.  
  469.             Allows you to specify a file into which you may save your work.  
  470.             This is especially useful if you load a file, make changes, and 
  471.             then wish to save the changes out as a different file.
  472.  
  473.             Exit to DOS
  474.  
  475.             Quit to DOS allows you to leave MCD and return to DOS.  You will 
  476.             be prompted to save your work, if you have not already done so.
  477.  
  478.  
  479.  
  480.  
  481.                                     Page 6
  482.             Edit Menu
  483.             ---------
  484.  
  485.             The edit menu provides editing functions that affect one or both 
  486.             of the Editing Frames (see figure 4).
  487.  
  488.                          +----------------------------
  489.                          | File   Edit   Generate   In
  490.                          +------+-------------------+-
  491.                                 | Clear Screen Mask |
  492.                                 | Clear Cursor Mask |
  493.                                 | Clear Both Masks  |
  494.                                 |-------------------|
  495.                                 | Set Hotspot       |
  496.                                 | Test Drive        |
  497.                                 +-------------------+
  498.  
  499.                               Figure 4  Edit Menu
  500.  
  501.             Clear Screen Mask
  502.  
  503.             The Clear Screen Mask selection turns off all the pixels of the 
  504.             screen mask.  This is the opposite of the default condition of 
  505.             this mask.  You can use the Invert button from the Toolbox to get 
  506.             the screen mask to its default condition.
  507.  
  508.             Clear Cursor Mask
  509.  
  510.             The Clear Cursor Mask selection turns off all the pixels of the 
  511.             cursor mask.  This is the default condition of this mask.
  512.  
  513.             Clear Both Masks
  514.  
  515.             The Clear Both Masks selection turns off all the pixels of both of 
  516.             the masks.  It also clears the file name, essentially allowing to 
  517.             start completely over.
  518.  
  519.             Set Hotspot
  520.  
  521.             You may select a hotspot for the cursor you are working on by 
  522.             clicking on the Set Hotspot function.  The hotspot is the place 
  523.             within a mouse cursor that is referred to by all the mouse 
  524.             functions, i.e., it is the 'center' of mouse activity.  Mouse 
  525.             interrupt 33h, function 9, requires that you give it the 
  526.             coordinates of the hotspot when you select a new graphics cursor.  
  527.             The variables hsx and hsy in each source code file that MCD 
  528.             generates contain the hotspot coordinates. 
  529.  
  530.             Test Drive
  531.  
  532.             You may do an actual 'test drive' with the cursor you are building 
  533.             by clicking on the Test Drive function.  This function swaps the 
  534.             cursor being worked on with the normal MCD cursor.  It also sets 
  535.                                     Page 7
  536.             the hotspot to that shown in the Cursor Editing Frame. BE CAREFUL 
  537.             - you could actually lose track of where the cursor is if you 
  538.             select this function while the cursor you are working on is 
  539.             invisible.  You should also be careful about the hotspot - if you 
  540.             are test driving a cursor, the hotspot is probably in a different 
  541.             spot than on the default cursor, so you could end up clicking on 
  542.             something you didn't mean to. 
  543.  
  544.  
  545.             Generate Menu
  546.             -------------
  547.  
  548.             The generate menu contains functions that allow you to generate a 
  549.             piece of source code from the current cursor design (see figure 
  550.             5). 
  551.  
  552.                            ------------------------
  553.                             Edit   Generate   Info
  554.                            ------+-----------+-----
  555.                                  | Generic C |
  556.                                  | Pascal    |
  557.                                  | Basic     |
  558.                                  | Assembly  |
  559.                                  +-----------+
  560.  
  561.                             Figure 5  Generate Menu
  562.  
  563.             Generic C
  564.  
  565.             MCD stores its cursor designs as C source files, but these files 
  566.             are specifically tailored for use with the TCXL library.  The 
  567.             Generic C menu selection allows you to create a C source file 
  568.             (.INC file) containing C source code that may be used with any C 
  569.             program.
  570.  
  571.             Pascal
  572.  
  573.             The Pascal menu selection allows you to create a Pascal source 
  574.             file (.PAS file) from the cursor design.
  575.  
  576.             Basic
  577.  
  578.             The Basic menu selection allows you to create a Basic source file 
  579.             (.BAS file) from the cursor design.  The source file is compatible 
  580.             with Quick Basic.
  581.  
  582.             Assembly
  583.  
  584.             The Assembly menu selection allows you to create an assembly 
  585.             language source file (.ASM file) from the cursor design.  The 
  586.             source file is compatible with most standard 80x86 assemblers.
  587.  
  588.  
  589.                                     Page 8
  590.             Info Menu
  591.             ---------
  592.  
  593.             The Info Menu contains information about MCD and how to 
  594.             register the MCD package (see figure 6).
  595.  
  596.                          ----------------------------
  597.                           Generate   Info
  598.                          -----------+------------+---
  599.                                     | About      |
  600.                                     | Order Info |
  601.                                     +------------+
  602.  
  603.                               Figure 6  Info Menu
  604.  
  605.             About MCD
  606.  
  607.             About contains information about the date and version of 
  608.             MCD and directs you to Order Info for more information. 
  609.  
  610.             Order Info
  611.  
  612.             Order Info displays information about how to create an 
  613.             order form, so you can register the MCD package. 
  614.  
  615.     The File Frame
  616.     --------------
  617.  
  618.     The File Frame contains the name of the file you are currently working on.  
  619.     It also contains a reminder that this version of MCD is unregistered, and 
  620.     that it would help your conscience to register it (see figure 7).
  621.  
  622.                     +-------------------------------------+
  623.                     |File:  [File Frame]    *   *****     |
  624.                     |-------------------------------------|
  625.                     |Unregistered Version                 |
  626.                     +-------------------------------------+
  627.  
  628.                              Figure 7  File Frame
  629.  
  630.     A picture of what the cursor design will look like is displayed to the 
  631.     right of the file name.  The picture shows the cursor against both a black 
  632.     and a white background, so you can get a fair idea of what the cursor look 
  633.     like in both circumstances.  An empty black strip is also provided so you 
  634.     may run a cursor through it on a test drive.
  635.  
  636.     The Mask Information Frames
  637.     ---------------------------
  638.  
  639.     The Mask Information Frames display two important bits of information.  
  640.     They show the X and Y coordinates of where you currently are in a 
  641.     particular Editing Frame.  This is helpful when editing from a completely 
  642.     white (inverted) image (see figure 8). 
  643.                                     Page 9
  644.                      +---------------+   +---------------+
  645.                      |Screen  PX: 5  |   |Cursor  PX: 4  |
  646.                      |Mask    PY: 12 |   |Mask    PY: 7  |
  647.                      +---------------+   +---------------+
  648.  
  649.                        Figure 8  Mask Information Frames
  650.  
  651.     The Editing Frames
  652.     ------------------
  653.  
  654.     The Editing Frames are where all the real action takes place in MCD (see 
  655.     figure 9). The current masks are displayed in the Frames in a magnified 
  656.     view. You may set or clear any pixels in either Frame.  To set a pixel, 
  657.     move to it and click.  To clear a pixel, do the same thing.  Each Editing 
  658.     Frame has a corresponding Toolbox that allows you to make changes to the 
  659.     Frame. 
  660.  
  661.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  662.                        | | | | | | | | | | | | | | | | |
  663.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  664.                        | |*| | | | | | | | | | | | | | |
  665.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  666.                        | |*|*| | | | | | | | | | | | | |
  667.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  668.                        | |*|*|*| | | | | | | | | | | | |
  669.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  670.                        | |*|*|*|*| | | | | | | | | | | |
  671.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  672.                        | |*|*|*|*|*| | | | | | | | | | |
  673.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  674.                        | |*|*|*|*|*|*| | | | | | | | | |
  675.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  676.                        | |*|*|*|*|*|*|*| | | | | | | | |
  677.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  678.                        | |*|*|*|*|*|*|*|*| | | | | | | |
  679.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  680.                        | |*|*|*|*|*|*|*|*|*| | | | | | |
  681.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  682.                        | |*|*|*|*|*| | | | | | | | | | |
  683.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  684.                        | |*|*| | |*|*| | | | | | | | | |
  685.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  686.                        | |*| | | |*|*| | | | | | | | | |
  687.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  688.                        | | | | | | |*|*| | | | | | | | |
  689.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  690.                        | | | | | | |*|*| | | | | | | | |
  691.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  692.                        | | | | | | | | | | | | | | | | |
  693.                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  694.  
  695.                             Figure 9  Editing Frame
  696.  
  697.                                     Page 10
  698.     The Toolboxes
  699.     -------------
  700.  
  701.     The Toolbox allows you to make gross changes to the Editing Frames.  Each 
  702.     Toolbox is located adjacent to the Editing Frame it applies to.  There are 
  703.     nine buttons; up, down, left, right, flip horizontal, flip vertical, 
  704.     rotate, invert and copy (see figure 10). 
  705.  
  706.                              +-------+  +-------+
  707.                              |   ^   |  |   ^   |
  708.                              |   ^   |  |   ^   |
  709.                              +-------+  +-------+
  710.                              |   v   |  |   v   |
  711.                              |   v   |  |   v   |
  712.                              +-------+  +-------+
  713.                              |       |  |       |
  714.                              |  <<   |  |  <<   |
  715.                              +-------+  +-------+
  716.                              |       |  |       |
  717.                              |  >>   |  |  >>   |
  718.                              +-------+  +-------+
  719.                              |       |  |       |
  720.                              |  <->  |  |  <->  |
  721.                              +-------+  +-------+
  722.                              |   ^   |  |   ^   |
  723.                              |   v   |  |   v   |
  724.                              +-------+  +-------+
  725.                              |  +-+  |  |  +-+  |
  726.                              |  | v  |  |  | v  |
  727.                              +-------+  +-------+
  728.                              |       |  |       |
  729.                              |  *-O  |  |  *-O  |
  730.                              +-------+  +-------+
  731.                              |       |  |       |
  732.                              |  <-C  |  |  <-S  |
  733.                              +-------+  +-------+
  734.  
  735.                            Figure 10  The Toolboxes
  736.  
  737.     When you click on an up arrow button, the Editing Frame contents is moved 
  738.     up by one pixel row.  The top row of pixels is lost. 
  739.  
  740.     When you click on a down arrow , the Editing Frame contents is moved down 
  741.     by one pixel row.  The bottom row of pixels is lost. 
  742.  
  743.     When you click on a left arrow button, the Editing Frame contents is moved 
  744.     to the left by one pixel column.  The left column of pixels is lost. 
  745.  
  746.     When you click on a right arrow button, the Editing Frame contents is 
  747.     moved to the right by one pixel column.  The right column of pixels is 
  748.     lost. 
  749.  
  750.  
  751.                                     Page 11
  752.     Clicking on a flip horizontal button flips the Editing Frame contents over 
  753.     horizontally, i.e., a left to right mirror image of the frame contents is 
  754.     produced. 
  755.  
  756.     Clicking on a flip vertical button flips the Editing Frame contents over 
  757.     vertically, i.e., a top to bottom mirror image of the frame contents is 
  758.     produced. 
  759.  
  760.     Clicking on a rotate button rotates the Editing Frame contents 90 degrees 
  761.     clockwise. 
  762.  
  763.     Clicking on an invert button inverts the Editing Frame contents.  All the 
  764.     pixels that were set are cleared and all the pixels that were clear are 
  765.     set. 
  766.  
  767.     Clicking on a copy button copies the contents of the other Editing Frame 
  768.     into the one you are working on, i.e., clicking on <-C copies the Cursor 
  769.     Editing Frame into the Screen Editing Frame, and clicking on <-S copies 
  770.     the Screen Editing Frame into the Cursor Editing Frame.
  771.  
  772. Creating a Mouse Cursor
  773. -----------------------
  774.  
  775. Now that you know how MCD works, let's learn how to create a mouse cursor.  
  776. The first thing you should know is how a mouse driver displays a mouse cursor.  
  777. The driver gets the 16 bit by 16 bit area of the display where the mouse 
  778. cursor will be displayed and logically ANDs that area with the screen mask.  
  779. This means that all the pixels on the display that correspond to ones in the 
  780. screen mask will remain unchanged, while all the pixels on the display that 
  781. correspond to zeroes in the screen mask will be set to zero. 
  782.  
  783. Next, the results of the ANDing are XORed (exclusively Ored) with the cursor 
  784. mask.  This means that all the pixels on the display (following the above 
  785. ANDing) corresponding to zeroes in the cursor mask will remain unchanged, 
  786. while all the pixels on the display corresponding to ones in the cursor mask 
  787. will have their bits flipped (ones for zeroes and zeroes for ones). 
  788.  
  789. If this sounds confusing, you're right - it is.  Just remember to pay 
  790. attention to the cursor images shown in the File Frame, and you should be ok.
  791.  
  792. The following is a general guide of how to build a mouse cursor.
  793.  
  794.     1. Make sure that you start with the screen mask filled with pixels and 
  795.     the cursor mask empty. 
  796.  
  797.     2. Build your cursor in the Cursor Editing Frame by setting or clearing 
  798.     pixels.  Check the display in the File Frame to make sure your cursor 
  799.     looks the way you want it to.
  800.  
  801.  
  802.  
  803.  
  804.  
  805.                                     Page 12
  806.     3. When you finish with the cursor design in the Cursor Editing Frame, you 
  807.     must decide whether your cursor is to be a see-through cursor, overlay 
  808.     cursor or an animated cursor. Overlay and animated cursors require changes 
  809.     in the Screen Editing Frame.  If your cursor is animated or an overlay 
  810.     cursor, read the appropriate sections of this manual for what to do next.  
  811.     NOTE: Most mouse cursors are overlay cursors. 
  812.  
  813.     4. Be sure to set the hotspot on your cursor where you want it to be. 
  814.  
  815.     5. Save your work when you have finished designing the cursor.  You may 
  816.     also generate source code for other languages at this time. 
  817.  
  818.     See-through Cursors
  819.     -------------------
  820.  
  821.     A see-through cursor allows you to see most of the object that the cursor 
  822.     is overlaying.  A see-through cursor is simply one where all the pixels 
  823.     in the screen mask are set.  This means that the only places that get 
  824.     changed are the pixels in the cursor mask that are set.  The HAIRS cursor 
  825.     included with this program is a good example of a see-through cursor. 
  826.  
  827.     Overlay Cursors
  828.     ---------------
  829.  
  830.     An overlay cursor is drawn on the display so that it completely overlays 
  831.     whatever is underneath it.  Most overlay cursors have their hotspots at 
  832.     one edge of the cursor, so the user may see what the cursor is actually 
  833.     pointing at.  Examples of overlay cursors are PENCIL, FINGER and ARROW. 
  834.  
  835.     To create an overlay cursor, you must do the following:
  836.  
  837.     1. After you have drawn your cursor in the Cursor Editing Frame, go over 
  838.     to the Screen Editing Frame Toolbox and click on the <-C (copy) button.  
  839.     This will copy the cursor mask image into the Screen Editing Frame. 
  840.  
  841.     2. Click on the *-O (invert) button in the Screen Editing Frame Toolbox.  
  842.     This will make a negative image of the screen mask. 
  843.  
  844.     3. Clear all the pixels within the boundary of the cursor image in the 
  845.     Screen Editing Frame.
  846.  
  847.     4. If you want the cursor to be outlined (if there is enough room to do 
  848.     that), go around the outside of the image in the Screen Editing Frame and 
  849.     clear out one more layer of pixels. 
  850.  
  851.     5. Check the File Frame to see if you have the results you want.  Test 
  852.     drive the cursor if necessary.  Be sure to save your work.
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.                                     Page 13
  860.     Animated Cursors
  861.     ----------------
  862.  
  863.     Mouse graphics cursors can allow limited animation because of the way they 
  864.     are displayed.  The animation occurs when the cursor is moved from a dark 
  865.     area to a light area on the display (and vice versa).  Examples of 
  866.     animated cursors are FACEIT, SPERM and PACMAN. 
  867.  
  868.     To create an animated cursor, you must do the following:
  869.  
  870.     1. After you have drawn your cursor in the Cursor Editing Frame, you must 
  871.     decide what pieces of it should disappear when the cursor moves from a 
  872.     dark area to a light area.  Go over to the Screen Editing Frame and turn 
  873.     the corresponding pixels off in that mask.  For example, in FACEIT, the 
  874.     corners of the mouth and the frown are erased by turning those pixels off 
  875.     in the Screen Editing Frame. 
  876.  
  877.     2. Decide what new pieces of the cursor must be on when the cursor is in a 
  878.     light area, then turn those pixels OFF in the Screen Editing Frame.  Make 
  879.     sure that those areas do not coincide with areas in the Cursor Editing 
  880.     Frame that are turned on. For example, in FACEIT, the mouth is turned into 
  881.     a smile by erasing two small areas on the screen mask. 
  882.  
  883.     3. Test drive the cursor.  Make sure it acts the way you want by moving 
  884.     between dark and light areas in the File Frame.  Be sure to save your 
  885.     work.
  886.  
  887. Using MCD Mouse Cursors
  888. -----------------------
  889.  
  890. To change the shape of a mouse cursor in your program, you must use the mouse 
  891. driver interrupt, int 33h, function 9 (Set Graphics Pointer Shape).  Any 
  892. program using a mouse will use the mouse interrupt, so you should be familiar 
  893. with the general capabilities of this interrupt.  If not, you may learn about 
  894. it in a number of references, including Ray Duncan's Advanced MSDOS 
  895. Programming book and the Microsoft Mouse Programmers Reference Guide. 
  896.  
  897.     Generic C
  898.     ---------
  899.  
  900.     The following code allows you to access int 33h, and provides an example 
  901.     of changing the mouse cursor shape for a C program.  Note that your C 
  902.     compiler's library must have 'intr', 'FP_OFF' and 'FP_SEG' functions, or 
  903.     their equivalents, to perform the required operation. 
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.                                     Page 14
  914.         #include <dos.h>
  915.  
  916.         /* ====================================================
  917.            Include file PENCIL.INC for generic C
  918.            Created by MCD - Mouse Cursor Designer, version 2.00
  919.              MCD is Copyright (C) 1989-92 by Rimrock Software
  920.                            All rights reserved.
  921.            ==================================================== */
  922.         unsigned int hsxPENCIL = 3;
  923.         unsigned int hsyPENCIL = 15;
  924.         unsigned int cursorPENCIL[32] = {
  925.            0x83ff,0x1ff,0x1ff,0x1ff,0x1ff,0x1ff,0x1ff,0x1ff,
  926.            0x1ff,0x1ff,0x1ff,0x1ff,0x1ff,0x83ff,0xc7ff,0xefff,
  927.            0x0,0x7c00,0x4400,0x4400,0x7c00,0x4400,0x4400,0x4400,
  928.            0x4400,0x4400,0x4400,0x7c00,0x7c00,0x3800,0x1000,0x0};
  929.  
  930.         void main()
  931.         {
  932.  
  933.            /* Register set for mouse use */
  934.            struct REGPACK rgs;
  935.  
  936.            /* Do your graphics setup, etc. here */
  937.  
  938.            rgs.r_ax = 9;                    /* mouse function 9 */
  939.            rgs.r_bx = hsxPENCIL;            /* hotspot x */
  940.            rgs.r_cx = hsyPENCIL;            /* hotspot y */
  941.            rgs.r_dx = FP_OFF(cursorPENCIL); /* offset addr of cursor */
  942.            rgs.r_es = FP_SEG(cursorPENCIL); /* segment addr of cursor */
  943.            intr(0x33,&rgs);                 /* set mouse cursor */
  944.  
  945.            rgs.r_ax = 1;                    /* show mouse cursor */
  946.            intr(0x33,&rgs);
  947.  
  948.            /* rest of your program here */
  949.         }
  950.  
  951.     Pascal
  952.     ------
  953.  
  954.     The following Pascal source fragment shows how to access the mouse 
  955.     interrupt and how to use it to change the mouse cursor shape.  It uses the 
  956.     Turbo Pascal 'Intr', 'Seg' and 'Ofs' functions to accomplish this.
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.                                     Page 15
  968.         Program TestCursor;
  969.         Uses DOS, Graph;
  970.  
  971.         (* ====================================================
  972.            Source file PENCIL.PAS for Pascal
  973.            Created by MCD - Mouse Cursor Designer, version 2.00
  974.              MCD is Copyright (C) 1989-92 by Rimrock Software
  975.                            All rights reserved.
  976.            ==================================================== *)
  977.         Const
  978.         hsxPENCIL : Word = 3;
  979.         hsyPENCIL : Word = 15;
  980.         cursorPENCIL : Array [0..31] of Word = (
  981.            $83ff,$1ff,$1ff,$1ff,$1ff,$1ff,$1ff,$1ff,
  982.            $1ff,$1ff,$1ff,$1ff,$1ff,$83ff,$c7ff,$efff,
  983.            $0,$7c00,$4400,$4400,$7c00,$4400,$4400,$4400,
  984.            $4400,$4400,$4400,$7c00,$7c00,$3800,$1000,$0);
  985.  
  986.         Begin
  987.            Var
  988.               R: Registers;             { Register set for mouse use }
  989.  
  990.            { Do your graphics setup, etc. here }
  991.  
  992.            R.AX := 9;                   { mouse function 9 }
  993.            R.BX := hsxPENCIL;           { hotspot x }
  994.            R.CX := hsyPENCIL;           { hotspot y }
  995.            R.DX := Ofs(cursorPENCIL[0]);{ offset addr of cursor }
  996.            R.ES := Seg(cursorPENCIL[0]);{ segment addr of cursor }
  997.            Intr($33,R);                 { set mouse cursor }
  998.  
  999.            R.AX := 1;                   { show mouse cursor }
  1000.            Intr($33,R);
  1001.  
  1002.            { rest of your program here }
  1003.         End.
  1004.  
  1005. MCD2C - Convert .MCD files to .C
  1006. --------------------------------
  1007.  
  1008. For those who are using older versions of MCD, the program MCD2C has been 
  1009. provided to help convert the old .MCD cursor files to the .C format. MCD2C is 
  1010. quite easy to use.  Simply enter MCD2C and the name of the file you want 
  1011. converted.  A new file with the same file name and an extension of .C will be 
  1012. generated in the same directory.  Wild card file characters are allowed and an 
  1013. extension of .MCD is assumed.  For example, to convert all .MCD files to .C in 
  1014. the TEMP directory of drive D, you would enter
  1015.  
  1016.         MCD2C D:\TEMP\*
  1017.  
  1018.  
  1019.  
  1020.  
  1021.                                     Page 16
  1022. To convert all the files that start with the letters ARR, you would enter
  1023.  
  1024.         MCD2C ARR*
  1025. or
  1026.  
  1027.         MCD2C ARR?????
  1028.  
  1029. NOTE: Be careful when using MCD2C.  The program makes no checks for already 
  1030. existing files.  It will destroy any .C files with the same file name as the 
  1031. one(s) being converted.
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.                                     Page 17
  1075.